package com.hyper_yang._03_designpatterns.principles.demo6;

/**
 * projectName: com.hyper_yang._03_designpatterns.principles.demo6
 *
 * @author: sakiko
 * time: 2025/9/26 23:01
 * description: 经纪人类(第三方代理
 * 迪米特法则(最少知识原则): 只和你的直接朋友交流，不和陌生人说话 talk only to your immediate friends and not to strangers
 * 含义: 如果两个软件实体无须直接通信，那么就不应当发生直接的相互调用，可以通过第三方转发该调用，其目的是降低类之间的耦合度，提高模块的相对独立性。
 * 迪米特法则中的 "朋友" 是指:
 * 1、当前对象本身
 * 2、当前对象的成员对象
 * 3、当前对象所创建的对象
 * 4、当前对象的方法参数等
 * 这些对象同当前对象存在 关联、聚合或组合的关系，可以直接访问这些对象的方法。
 */
public class AgentPerson {

    private Star star;
    private Fans fans;
    private Company company;

    public void setStar(Star star) {
        this.star = star;
    }

    public void setFans(Fans fans) {
        this.fans = fans;
    }

    public void setCompany(Company company) {
        this.company = company;
    }

    public void meeting() {
        System.out.println(star.getName() + " 和粉丝 " + fans.getName() + " 见面 ");
    }

    public void business() {
        System.out.println(star.getName() + " 和 " + company.getName() + " 洽谈 ");
    }
}
